您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

利用跟踪数据的电源管理的方法和系统

  • 申请号:CN200980128626.8 申请公布号: CN102105847B
  • 申请日: 2009-06-18 申请公布日: 2014-07-30
  • 申请(专利权)人: 专利代理机构: 中国国际贸易促进委员会专利商标事务所
  • 分类号:G06F1/32;G06F11/34

专利介绍

一种对硬件进行电源管理的方法。所述方法包括确定要进行电源管理的硬件,从电源管理控制器向跟踪框架发送跟踪请求,以获得硬件的使用数据,和识别第一硬件控制软件组件中的获得与使用数据对应的第一跟踪数据的第一探测器,其中第一硬件控制软件被配置成与所述硬件交互作用。所述方法还包括开启第一探测器,从第一探测器获得第一跟踪数据,其中第一跟踪数据是当在第一硬件控制软件的执行过程中,遇到第一探测器时获得的,和利用第一跟踪数据修改硬件的操作。
1.一种对应用进行电源管理的方法,包括:识别所述应用中的性能关键部分;在所述性能关键部分之前,在所述应用中插入开始探测器;在所述性能关键部分之后,在所述应用中插入结束探测器;在所述性能关键部分中插入多个资源利用探测器,其中每个资源利用探测器与硬件相关联,所述硬件与该应用运行于其上的系统相关联,其中所述多个资源利用探测器中的每个资源利用探测器在应用的执行过程中遇到开始探测器之后被开启,并在应用的执行过程中遇到结束探测器之后被禁用;开启所述开始探测器和结束探测器;执行所述应用,其中执行所述应用包括遇到开始探测器、所述多个资源利用探测器中的至少一个资源利用探测器和结束探测器;在执行应用的过程中收集使用数据,其中所述使用数据识别由所述应用的性能关键部分使用的至少一个所利用的装置,其中所述至少一个所利用的装置在与所述系统相关联的所述硬件内;将所述使用数据返回给电源管理控制器;由所述电源管理控制器基于所述使用数据改变所述至少一个所利用的装置的电源状态;以及测量所述电源状态的变化对所述性能关键部分的性能影响。
2.按照权利要求1所述的方法,其中在保持应用的性能水平的同时修改所述硬件的操作,以使所述硬件的电源使用降至最小,并且其中修改所述硬件的操作包含修改所述硬件的电源状态。
3.按照权利要求2所述的方法,其中所述硬件是从主存储器、处理器和永久性存储装置中选择的一个。
4.按照权利要求2或3所述的方法,其中所述性能水平是执行所述应用的线程遇到开始探测器和遇到结束探测器之间的持续时间。
5.按照权利要求2或3所述的方法,其中所述性能水平是单位时间内,通过所述应用的性能关键部分的多个线程的吞吐量。
6.按照权利要求1-3任意之一所述的方法,其中利用所述电源管理控制器中包括的电源管理策略修改所述硬件的操作。
7.按照权利要求6所述的方法,其中所述电源管理控制器位于用户层。
8.一种对应用进行电源管理的系统,包括:用于识别所述应用中的性能关键部分的装置;用于在所述性能关键部分之前,在所述应用中插入开始探测器的装置;用于在所述性能关键部分之后,在所述应用中插入结束探测器的装置;用于在所述性能关键部分中插入多个资源利用探测器的装置,其中每个资源利用探测器与硬件相关联,所述硬件与该应用运行于其上的系统相关联,其中所述多个资源利用探测器中的每个资源利用探测器在应用的执行过程中遇到开始探测器之后被开启,并在应用的执行过程中遇到结束探测器之后被禁用;用于开启所述开始探测器和结束探测器的装置;用于执行所述应用的装置,其中执行所述应用包括遇到开始探测器、所述多个资源利用探测器中的至少一个资源利用探测器和结束探测器;用于在执行应用的过程中收集使用数据的装置,其中所述使用数据识别由所述应用的性能关键部分使用的至少一个所利用的装置,其中所述至少一个所利用的装置在与所述系统相关联的所述硬件内;用于将所述使用数据返回给电源管理控制器的装置;用于由所述电源管理控制器基于所述使用数据改变所述至少一个所利用的装置的电源状态的装置;以及用于测量所述电源状态的变化对所述性能关键部分的性能影响的装置。
背景技术
现代计算机系统可被大致划分成三个概念要素:硬件、操作系统和应用程序。硬件,例如中央处理单元(CPU)、存储器、持久性存储装置和输入/输出装置提供基本的计算资源。应用程序,比如编译器、数据库系统、软件和商业程序,定义这些资源被用于解决用户的计算问题的方式。用户可包括人、机器、和使用应用程序的其它计算机,所述应用程序又采用硬件来解决多种问题。操作系统(“OS”)是充当计算机系统的用户和计算机硬件之间的媒介的程序。操作系统的用途是提供一种环境,在所述环境中,用户能够方便并且高效地执行应用程序。计算机系统具有为解决问题而需要的许多资源(硬件和软件),例如中央处理单元(“CPU”)时间、存储空间、输入/输出(“I/O”)装置,等等。操作系统充当这些资源的管理者,并根据需要把它们分配给具体的程序和用户。由于可能存在许多可能冲突的资源请求,操作系统必须决定哪些请求被分配资源,以高效并且公平地运转计算机系统。此外,操作系统可被表征为控制程序。控制程序控制用户程序的执行,以避免计算机的错误和不正确使用。控制程序尤其关注I/O装置的操作。通常,操作系统因其是一种解决建立可用计算系统的问题的合理途径而存在。计算机系统的基本目标是执行用户程序,和使解决用户问题变得更容易。朝着这个目标,构成了计算机硬件。由于单独的裸硬件不是特别易于使用,因此开发了应用程序。这些各种程序需要某些公共的操作,例如控制I/O操作的那些操作。从而使控制和分配资源的公共功能集合成一个软件:操作系统。为了节能,一些计算机系统包含电力控制机制。例如,能源之星(“E*”)电源要求需要当系统处于空闲状态时,系统功耗降低到正常工作功耗水平的15%。为了节能,操作系统关闭不活动的装置,比如硬盘和监视器(或者降低其工作频率)。操作系统还可通过调整CPU的运行来节能。
发明内容
在一个方面,本发明涉及一种对硬件进行电源管理的方法。该方法包括:确定要进行电源管理的硬件,从电源管理控制器向跟踪框架发送跟踪请求,以获得硬件的使用数据,识别第一硬件控制软件组件中的获得与使用数据对应的第一跟踪数据的第一探测器,其中第一硬件控制软件被配置成与所述硬件交互作用,开启第一探测器,从第一探测器获得第一跟踪数据,其中第一跟踪数据是当在第一硬件控制软件的执行过程中遇到第一探测器时获得的;和利用第一跟踪数据进一步修改所述硬件的操作。在一个方面,本发明涉及一种对应用进行电源管理的方法。该方法包括:识别所述应用中的性能关键部分,在所述性能关键部分之前,在所述应用中插入开始探测器,在所述性能关键部分之后,在所述应用中插入结束探测器,在所述性能关键部分中插入多个资源利用探测器,其中每个资源利用探测器与硬件相关联,所述硬件与该应用运行于其上的系统相关联,其中所述多个资源利用探测器中的每个资源利用探测器在应用的执行过程中遇到开始探测器之后被开启,并在应用的执行过程中遇到结束探测器之后被禁用,开启所述开始探测器和结束探测器,执行所述应用,其中执行所述应用包括遇到开始探测器、所述多个资源利用探测器中的至少一个,和结束探测器,其中当在执行应用的过程中遇到至少一个资源利用探测器时获得使用数据,和利用所述使用数据修改所述硬件的操作。本发明的实施例涉及一种对软件进行电源管理的系统。该系统包括:硬件,和电源管理控制器,其中电源管理控制器被配置成:从电源管理控制器向跟踪框架发送跟踪请求,以获得硬件的使用数据,识别第一硬件控制软件组件中的获得与使用数据对应的第一跟踪数据的第一探测器,其中第一硬件控制软件被配置成与所述硬件交互作用,开启第一探测器,从第一探测器获得第一跟踪数据,其中第一跟踪数据是当在第一硬件控制软件的执行过程中遇到第一探测器时获得的,和利用第一跟踪数据修改所述硬件的操作。根据下面的说明书和附加权利要求,本发明的其它方面将是显而易见的。
附图说明
图1表示按照本发明的一个或多个实施例的系统。图2表示按照本发明的一个或多个实施例的流程图。图3表示按照本发明的一个或多个实施例的示例流程图。图4表示按照本发明的一个或多个实施例的计算机系统。
具体实施方式
现在参考附图,仅以示例的方式详细说明本发明的具体实施例。考虑到一致性,各个图中的相同元件用相同的附图标记表示。在本发明的实施例的下述详细说明中,陈述了众多的具体细节,以便更透彻地理解本发明。不过,对本领域的普通技术人员来说,显然可在没有这些具体细节的情况下实践本发明。在其它情况下,未详细说明公知的特征,以避免不必要地使说明变复杂。一般而言,本发明的实施例提供一种利用跟踪数据管理系统中的电源的方法和系统。更具体地说,本发明的实施例提供一种用于跟踪硬件使用、收集跟踪数据,并利用收集的跟踪数据改变硬件使用的方法和系统。按照本发明的一个或多个实施例,利用跟踪数据以及电源管理策略修改硬件使用。图1表示按照本发明的一个或多个实施例的系统。所述系统可被看作三层:用户层,内核层和硬件层。用户层使用户能够通过一系列的应用与系统交互作用。从用户层,用户可通过内核层与底层硬件交互作用。系统的内核层管理系统资源,并且充当用户层和底层的硬件层之间的媒介。硬件层内是一组硬件(114A-114N)。按照本发明的一个或多个实施例,硬件(114A-114N)可包括各种各样的装置,比如处理器、物理存储器和/或输入/输出(I/O)装置。在执行过程中,运行于系统上的应用依赖于这些资源。不过,对每种资源的需要会因应用而异。硬件(114A-114N)直接由一组硬件控制软件(112A-112N)控制。硬件控制软件(112A-112N)一般位于系统的内核层中。按照本发明的一个或多个实施例,硬件控制软件(112A-112N)嵌入有一系列的探测器(110A-110N)。这些探测器(110A-110N)是嵌入硬件控制软件中的多组代码,当在硬件控制软件(112A-112N)的执行期间被开启和遭遇时,所述探测器具有向探测器提供器(108)回送信号的能力。按照本发明的一个或多个实施例,收集的数据可对应于电源使用信息或者代表电源使用信息。嵌入硬件控制软件(112A-112N)内的探测器(110A-110N)由同样位于系统的内核层内的探测器提供器(108)开启。按照本发明的一个或多个实施例,这些探测器提供器(112A-112N)根据为了对硬件进行电源管理而向硬件控制软件要求的数据,管理探测器(110A-110N)。探测器提供器(108)根据从跟踪框架(106)接收的请求,开启一组探测器(110A-110N)。跟踪框架(106)通过接收对需要从硬件控制软件(112A-112N)获得的数据的请求、确定为了取回必需的数据应开启哪些探测器,和开启选择的探测器提供器(108),来充当电力管理控制器(102)和探测器提供器(108)之间的媒介。在美国专利No.7,194,731和7,350,196中描述了跟踪框架的一个或多个实施例,这些美国专利被包括在此。如图1中所示,通过内核接口(104)与内核层交互作用的电源管理控制器(102)位于用户层中。按照本发明的一个或多个实施例,该电源管理控制器通过用户层中的应用(未示出)接收对硬件使用进行电源管理的请求。该电源管理控制器还可包括确定如何修改硬件使用以管理系统的电源使用的电源管理策略。图2表示按照本发明的一个或多个实施例的流程图。更具体地说,图2表示按照本发明的一个或多个实施例的对硬件进行电源管理的方法。在步骤202,电源管理控制器识别要进行电源管理的硬件。按照本发明的一个或多个实施例,电源管理控制器从在系统的用户层中的应用处接收对硬件进行电源管理的请求。作为替代地,电源管理控制器可被配置成自发对硬件进行电源管理。在步骤204,电源管理控制器确定为了对所选硬件进行电源管理需要什么数据,并向跟踪框架发送对所述数据的请求。电源管理所需的数据可与所选硬件的电源使用情况、可进行电源管理的系统资源的软件利用情况,和可进行电源管理的资源状态与它们对应用性能的影响之间的映射有关。在步骤206,跟踪框架识别为了从硬件控制软件收集所需数据而必需的探测器和探测器提供器。每个探测器与一个探测器提供器关联,并且跟踪框架识别所述提供器,以发送开启所选探测器的请求。在步骤208,探测器提供器开启必要的探测器。在步骤210,在硬件控制软件执行的时候,当遇到开启的探测器时,开启的探测器产生跟踪数据,并把数据传回给跟踪框架。在本发明的一个实施例中,跟踪数据可包括与在应用进行一项关键工作单位之前和之后的进入-退出次数有关的信息,和在给定处理器上运行的线程的数目有关的信息,等等。在步骤212,跟踪框架把跟踪数据发给电源管理控制器。按照本发明的一个或多个实施例,产生的数据可以编译自在硬件控制软件中开启和遇到的一个或多个探测器。此外,跟踪数据可以来自与作为电源管理控制器的目标的硬件相关联的一个或多个硬件控制软件程序。在步骤214,电源管理控制器利用来自于步骤212的跟踪数据确定如何修改硬件的使用。按照本发明的一个或多个实施例,可利用跟踪数据和与电源管理控制器关联的电源管理策略来确定硬件的修改的使用。在本发明的一个实施例中,电源管理策略可指出硬件使用将被修改为降低功耗,或者修改为提高硬件的性能(例如,增大单位时间处理的指令的数目,等等)。在步骤216,电源管理控制器向硬件控制软件发送请求以运行所确定的硬件控制软件。尽管给出并顺序说明了该流程图中的各个步骤,不过本领域的技术人员会认识到一些或者所有的步骤可按照不同的顺序执行,可被组合或省略,一些或者所有的步骤可被并行执行。另外,为了简化说明,省略了诸如保存确认之类的步骤。图3表示按照本发明的一个或多个实施例的流程图。具体地说,图3中的流程图详细说明了为了对硬件进行电源管理,在系统内传送数据的例子。该例子并不意图限制本发明的范围。参见所述例子,在302,探测器提供器(108)向跟踪框架(106)发送登记,从而确定哪个探测器提供器(108)控制哪个探测器(110A-110N)。利用该信息,跟踪框架(106)建立探测器提供器(108)和探测器(110)的映射,以使跟踪框架(106)能接收来自电源管理控制器(102)的请求并确定如何开启正确的探测器。在304,从电源管理控制器(102)向跟踪框架(106)发送跟踪请求。按照本发明的一个或多个实施例,发送给跟踪框架的请求识别硬件(未示出)和与硬件有关的请求使用数据。使用数据的例子包括但不限于单位时间的I/O请求的数目,给定处理器保持空闲状态的时间,等等。在收到该请求之后,跟踪框架(106)选择哪些探测器(110)应被开启,以获得电源管理控制器(102)请求的数据。如果电源管理控制器(108)在对I/O装置进行电源管理,那么跟踪框架(106)可选择当I/O请求启动和结束时会向跟踪框架提供数据的探测器。在(306),跟踪框架向对应的探测器提供器(108)发送请求,以开启选择的探测器(110)。在(308),探测器提供器开启选择的探测器(110)。在探测器被开启之后,探测器可被用于跟踪与所请求的使用数据对应的数据。换句话说,探测器收集的跟踪数据对应于电源管理控制器请求的使用数据。具体地说,当在硬件控制软件(112)的执行期间遇到探测器时,硬件控制软件(112)暂停执行,并且控制被转移给跟踪框架(310)。跟踪框架(106)通过应用与触发了控制的转移的所述探测器相关的一个或多个动作,获得必需的数据。一旦从探测器获得数据,控制就被转移回硬件控制软件(112),以便继续执行(312)。返回参见对I/O装置进行电源管理的例子,会在I/O请求完成之前和之后遇到探测器,因此探测器生成跟踪数据。该数据可包括和I/O请求、所使用的I/O装置,和作为I/O请求的一部分传送的数据有关的信息。在硬件控制软件的执行结束之后,在(314),跟踪框架把收集的数据发给电源管理控制器。电源管理控制器可根据跟踪数据和电源管理策略修改使用硬件的方式。修改硬件使用所必需的信息/指令随后被发给硬件控制软件。在对I/O装置进行电源管理的例子中,电源管理控制器(102)可确定电源效率更高的方式来利用I/O装置。例如,I/O装置可被部分停转,而不导致I/O装置性能的任何下降。这种情况下,电源管理控制器可请求硬件控制软件部分停转(例如,半速)I/O装置。对系统中的I/O装置进行电源管理只是如何对系统中的资源进行电源管理的一个例子。另一个例子是对处理器进行电源管理。按照本发明的一个或多个实施例,跟踪技术可被用于通过补充来自CPU性能计数器(即,被编程为对在一段时间内,特定一组“事件”的发生进行计数的一组寄存器)的数据,对处理器进行电源管理。在一些情况下,收集更多的数据,以确定CPU性能是有益的。一个例子是当经历了预定计数的特定类型的事件时遇到探测器,或者利用探测器确定应用中的关键路径的资源利用情况,其中所述关键路径是执行中使用的资源的顺序和功能。类似地,通过利用跟踪框架,也可对存储装置进行电源管理。一个例子是开启探测器,以跟踪和在一段时间内访问的物理存储地址有关的信息。另外,可利用一系列的探测器收集关于存储器的更多数据,比如物理存储地址是否导致高速缓存未中,并且该数据被返回给跟踪框架,使得电源管理控制器可利用该数据以及电源管理策略修改存储器使用。在本发明的一个实施例中,这使电源管理子系统可以了解哪个物理存储器正被使用。此外,可按照划分应用的性能关键部分的方式,在应用中开启探测器(例如,可在执行应用的线程进入该应用的关键部分时,和在所述线程退出该应用的关键部分时遇到探测器)。例如,当在I/O请求前后开启探测器时,关于存储位置的数据可被返回给跟踪框架。利用该数据,跟踪框架可通过停转未被使用的磁盘来对硬件进行电源管理。下面是本发明的一个或多个实施例的例子,该例子并不意图限制本申请的范围。返回所述例子,考虑其中使用探测器获得与web服务应用有关的信息的场景。在这种情况下,web服务应用的性能关键部分是所述web服务应用的执行过程中的通过网络连接接收对文件的请求,和通过网络连接向远程请求者提供响应(所述响应包括请求的数据)的部分。该关键部分的性能可至少部分取决于该应用运行于的机器的处理器速度,连网速度的速度,和主存储器的速度和/或对应于文件的数据所位于的永久性存储装置(例如,硬盘、磁带驱动器等)的速度。为了划分性能关键部分,跟踪框架可开启在性能关键部分开始和结束时遇到的(即,启动的)探测器(开始探测器和结束探测器)。从而通过测量在执行所述应用的线程的开始/结束探测器的启动之间过去的时间,可表征应用服务于请求的等待时间。此外,通过集合地计数单位时间(可能由系统中的多个并发的应用线程)启动的开始/结束探测器对的数目,可测量服务吞吐量。在内核中,可存在当利用给定的可进行电源管理的资源时启动的各种探测器(称为“资源利用探测器”)。例如,当发起对磁盘或连网装置的I/O请求时,或者当应用开始在处理器上运行时(或者当为已运行的应用开启探测器时),探测器可启动。在探测器的启动过程中收集的信息可包括哪个或哪些装置正在被使用,和其它的使用细节。通过使这些“资源利用”探测器的启动以应用中的“开始”探测器的启动为基础(和当遇到“结束”探测器时,禁止这些探测器的启动)(即,在开始探测器被启动之前,资源利用探测器不被开启,并且一旦结束探测器被启动,资源利用探测器就被禁用),跟踪框架可收集和向电源管理控制器返回与在应用的性能关键部分期间哪些资源被使用有关的信息。通过改变所利用的装置的电源状态,以及随后测量观测的延迟和/或吞吐量的变化,电源管理控制器还可表征和了解对关键部分的性能影响。在本发明的一个实施例中,利用断言(predicate)来启用和/或禁用探测器是在美国专利7,281,240中说明的,该专利被包括在此引为参考。实质上,可在任意类型的计算机上实现本发明的实施例,与使用的平台无关。例如,如图4中所示,计算机系统(400)包括一个或多个处理器(402)、相关的存储器(404)(例如,随机存取存储器(RAM)、高速缓冲存储器、闪速存储器等)、存储装置(406)(例如,硬盘,诸如压缩盘驱动器或数字视频光盘(DVD)驱动器之类的光学驱动器,闪速记忆棒等),和目前的计算机典型特有的众多其它元件和功能(未示出)。计算机(400)还可包括输入装置,比如键盘(408)、鼠标(410)或麦克风(未示出)。此外,计算机(400)可包括输出装置,比如监视器(412)(例如,液晶显示器(LCD)、等离子显示器,或者阴极射线管(CRT)监视器)。计算机系统(400)可经网络接口连接(未示出),连接到网络(514)(例如,局域网(LAN),诸如因特网之类的广域网(WAN),或者任何其它类似种类的网络)。本领域的技术人员会认识到存在许多不同种类的计算机系统,并且上面提及的输入和输出装置可以采取其它形式。一般来说,计算机系统(400)至少包括为实践本发明的实施例而需要的最少的处理、输入和/或输出装置。此外,本领域的技术人员会认识到上述计算机系统(400)的一个或多个元件可以位于远程位置,并通过网络与其它元件连接。此外,可在具有多个节点的分布式系统上实现本发明的实施例,这种情况下,本发明的每个部分可以位于分布式系统内的不同节点上。在本发明的一个实施例中,所述节点对应于计算机系统。另一方面,所述节点可对应于具有相关物理存储器的处理器。作为替代地,所述节点可对应于具有共享存储器和/或资源的处理器。此外,实现本发明的实施例的软件指令可保存在计算机可读介质,比如压缩盘(CD)、磁盘、磁带、文件或者任何其它计算机可读存储装置上。按照本发明的一个或多个实施例,一些优点包括提供一种评估电源管理的关键路径的方法和机构,提供一种评估电源管理技术的结果的方法和机制,和允许修改电源管理策略,以便更有效地进行电源管理。尽管关于数目有限的实施例说明了本发明,不过在受益于本公开内容的情况下,本领域的技术人员会认识到可以设计出不脱离这里公开的本发明的范围的其它实施例。因此,本发明的范围只由附加的权利要求限定。